import Router from '@koa/router';
import TenantPermissionController from '@/controllers/TenantPermissionController';
import { auth, requireSuperAdmin } from '@/middlewares';

const router = new Router({
  prefix: '/api/tenant-permissions',
});

/**
 * 租户权限路由
 */

// 获取当前租户权限列表
router.get(
  '/',
  auth,
  TenantPermissionController.list.bind(TenantPermissionController),
);

// 按模块分组获取当前租户权限
router.get(
  '/by-module',
  auth,
  TenantPermissionController.listByModule.bind(TenantPermissionController),
);

// 获取指定租户的权限（超级管理员）
router.get(
  '/:tenantId',
  auth,
  requireSuperAdmin,
  TenantPermissionController.getTenantPermissions.bind(TenantPermissionController),
);

// 授予额外权限（超级管理员）
router.post(
  '/grant-extra',
  auth,
  requireSuperAdmin,
  TenantPermissionController.grantExtra.bind(TenantPermissionController),
);

// 撤销额外权限（超级管理员）
router.post(
  '/revoke-extra',
  auth,
  requireSuperAdmin,
  TenantPermissionController.revokeExtra.bind(TenantPermissionController),
);

// 同步套餐权限（超级管理员）
router.post(
  '/sync-plan-permissions',
  auth,
  requireSuperAdmin,
  TenantPermissionController.syncPlanPermissions.bind(TenantPermissionController),
);

export default router;

